Repository navigation
feat(pip): drop the header band, and let the platform name go before the logo - #193
Conversation
…the logo Owner's PiP batch, 2026-10-08. Board f324ec6. The raised strip above the rows read as a stray silver tab. It is gone, and with it the app's own mark and the word "CodeCaps": the provider logos are what identify a row now. The close/back control floats over the rows' top-right corner instead, still only while the pointer is over the window, so it never occupies permanent space above the numbers. The width ladder gained a `logoOnly` level. The logo and the name used to drop together at `minimal`, which left a nameless AND unidentifiable row; the owner's instruction was that the name goes first and the logo stays, so that is now its own rung between the named single-meter row and the identity-free one. His condition for this — "ASSUMING WE FINALLY CAN MAKE THE LOGOS ACTUALLY SHOW UP" — is met by #190, which ships the marks as colour/light/dark PNG triplets rather than SVGs. Panel metrics follow the header's removal: `minHeight` is one row plus padding, and the fit and visible-row maths no longer reserve a band. Verified: swift build clean; swift test 370 passed / 3 skipped / 0 failures, including a new testThePlatformNameDropsBeforeTheLogo that pins the order and the real width band that selects it. Two tests that asserted the old header contract were updated rather than deleted silently: the fit-height test no longer counts a header, and the header-text test is gone with the header.
Code Review Completed! 🔥The code review was successfully completed based on your current configurations. Kody Guide: Usage and ConfigurationInteracting with Kody
Current Kody ConfigurationReview OptionsThe following review options are enabled or disabled:
|
|
Single-space sentence separation in the PR body violates the 2026-08-19 rule requiring two spaces between sentences in agent-written paragraphs. GitHub-flavored markdown collapses literal two ASCII spaces, so emit the literal HTML entity Kody rule violation: Use two spaces between sentences in every human-facing string and agent-written paragraph |
🤔 Insufficient Task ContextI found a task linked to this PR, but it only contains minimal information (title only, no description or acceptance criteria). To perform a meaningful business rules validation, I need more details. 🔍 What I need to validate:
💡 How to improve the task context:
|
…t row Kody caught this on #193: the 18x18 close control sat flush in the panel's top-trailing corner and overlapped the first row's right-edge percentage by about 8x12pt. controlInset existed for exactly this offset but nothing consumed it, so the contract was declared and then not honoured. Honours the constant rather than removing it, so the corner offset it was designed for is now actually enforced.
Kody Review CompleteGreat news! 🎉 Keep up the excellent work! 🚀
|
| Options | Enabled |
|---|---|
| Bug | ✅ |
| Performance | ✅ |
| Security | ✅ |
| Business Logic | ✅ |
🤔 Insufficient Task ContextI found a task linked to this PR, but it only contains minimal information (title only, no description or acceptance criteria). To perform a meaningful business rules validation, I need more details. 🔍 What I need to validate:
💡 How to improve the task context:
|
…rol vocabulary (#208) * feat(glance,pip): the owner's mark and flame, ink for "All", one control vocabulary Four owner tweaks, 2026-10-10. 1) USAGE FLAME BESIDE EACH ROW'S LOGO in the PiP. Beside the logo rather than after the name because the name is the first thing the width ladder drops: at narrow widths this is the only place the signal can still live. 2) "ALL" IN INK, not the accent. It was the one control in the header wearing the accent while meaning nothing by it; the accent now appears only where it carries meaning. 3) THE OWNER'S MARK AT THE POPOVER'S TOP-LEFT, before "CodeCaps". The same black-on-transparent artwork the menu bar and PiP use, drawn as a template. This is the Glance popover, not the PiP — the PiP header is gone by the owner's own request in #193, and the provider logos identify the HUD there. 4) THE SCOPE SWITCH READS AS A TOGGLE. It had a full-height rule between the boxes and an outline around the pair, which reads as two adjacent rectangles rather than one control. It now has a filled track under an unselected segment, the same corner radius, accent fill and on-accent ink as the footer's Open CodeCaps — one control vocabulary in the window. Added a `controlTrack` token beside the existing control colours rather than inlining a colour. The header tests caught the first attempt and were right to: changing the header's HStack spacing from 0 to 4 did not add 4pt, it added 4pt to EVERY implicit gap in a row with eight or more children — about 32pt of a 570pt popover, enough to crowd the cluster outright. The gap now lives on the mark alone, and the mark is 12pt. The remaining 16pt is the mark's true cost, which the width-budget test now includes. 394 tests pass, 3 skipped, 0 failures. * fix(pip): reserve the flame's width in the row arithmetic Kody caught this on #208. Adding the flame beside the logo widened the row, but `rowWidth(for:)` — the same number behind `fitSize`, `applyFit` and the horizontal strip's per-row frame — did not know about it. So the icon was clipped by the vertical list's clip shape, and overflowed its frame into the inter-row gap horizontally. The flame's width now lives in `rowWidth(for:hasFlame:)` rather than as an extra padding on the row view, because that one function is what the fit and refit path already consults; putting it anywhere else would leave the same desync behind. One spiking row widens the whole strip: rows are a uniform width by design, and mixed widths would defeat the grid the owner asked for. A test asserts that a spiking row is wider by exactly `flameWidth` at every detail level that draws a logo, and by nothing at the levels that do not.
Board
f324ec6, owner's PiP batch 2026-10-08.The grey header is gone
The raised strip above the rows read as a stray silver tab. It's removed, and with it the app's own mark and the word "CodeCaps" — per the owner, once the header goes, the app's identity isn't wanted on the HUD at all. The provider logos identify it now.
The close/back control floats over the rows' top-right corner instead, still only while the pointer is over the window, so it never occupies permanent space above the numbers.
The name drops before the logo
This was the owner's conditional ask: "when the window is getting narrower, the first thing to go (after things have compressed as much as allowable) is the platform name ASSUMING WE FINALLY CAN MAKE THE LOGOS ACTUALLY SHOW UP."
Detailgained alogoOnlyrung. The logo and the name used to disappear together atminimal, which left a row that was neither named nor identifiable. Now the name goes atlogoOnlyand the logo survives untilminimal, where identity runs out entirely.The condition is met: #190 ships the marks as colour/light/dark PNG triplets rather than SVGs, so they actually render.
Panel metrics follow —
minHeightis one row plus padding, and the fit/visible-row maths no longer reserves a band that isn't there.Verification
swift buildclean;swift test370 passed, 3 skipped, 0 failures, including a newtestThePlatformNameDropsBeforeTheLogothat pins the order and the real width band that selects it.Two tests that asserted the old header contract were updated rather than quietly dropped: the fit-height test no longer counts a header, and the header-text test went away with the header it described.
Not in this PR
Two of the five items are not here, and I want to be explicit rather than let the PR title imply otherwise:
ScrollView; switching it needs a real width-driven scroll-axis decision and the owner asked for it at a specific point (~80–100pt wider than the squeeze point). Worth its own PR against this one.Both are tracked on
f324ec6.